#include <vector>

template< typename T, typename U, int value>
class SuckType {
public:
    T a;
    U b;
    SuckType():a(value),b(value){}
};
// template< typename U>
// typedef SuckType<std::vector<int>, U, 1> NewType; // 不合法

template <typename T>
using NewType = SuckType<int, T, 1>;    // 合法